//函数的参数类型 可以按照普通数据类型加注解的方法去直接写 num1:number,num2:number
//函数的返回值 注解()：number=>{} 如果没有返回值 类型用void
//在开发过程中，一般不用去写函数返回值的类型注解(自动推导)

function sum(num1:number,num2:number){
    return num1+num2
}
sum(1,2);


//箭头函数或者匿名函数
//item可以根据上下文环境推导出来，这个时候可以不去添加类型注解
let arr =["a","b","c"];
//let arr =[1,2,3,4,5];
arr.forEach(function(item){
    item.toUpperCase()
})

//函数中参数是对象的时候
//data=>对象
// data：{name:string,age:number,flag?:boolean} 加问号表示可以传递也可以不传递
//每个属性的类型也是可以指定的，如果不指定那么就是any类型
function sentData(data:{name:string,age:number,flag?:boolean}){
    console.log(data.name)
    console.log(data.age)
    console.log(data.flag)
}

sentData({name:"1",age:2,flag:true})
sentData({name:"1",age:2})